feat: 更新权限系统
This commit is contained in:
parent
03ee846b7a
commit
049b5774bf
@ -4,20 +4,26 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"git.lxtend.com/qqbot/service/beatleader"
|
"git.lxtend.com/qqbot/service/beatleader"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("查bl", getMyBL)
|
handler.RegisterHandler("查bl", getMyBL, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("查bl", "查看您的最新分数")
|
handler.RegisterHelpInform("查bl", "查看您的最新分数")
|
||||||
handler.RegisterHandler("绑定bl", bindBL)
|
handler.RegisterHandler("绑定bl", bindBL, constants.LEVEL_USER)
|
||||||
handler.RegisterHandler("解绑bl", unbindBL)
|
handler.RegisterHelpInform("绑定bl", "绑定您的beatleader账号")
|
||||||
handler.RegisterHandler("最新bl", getMyRecentScore)
|
handler.RegisterHandler("解绑bl", unbindBL, constants.LEVEL_USER)
|
||||||
handler.RegisterHandler("最热bl", getRecentScore)
|
handler.RegisterHelpInform("解绑bl", "解绑您的beatleader账号")
|
||||||
handler.RegisterHandler("截图bl", screenShotBL)
|
handler.RegisterHandler("最新bl", getMyRecentScore, constants.LEVEL_USER)
|
||||||
handler.RegisterHandler("jbl", screenShotBL)
|
handler.RegisterHelpInform("最新bl", "查看您的最新游戏记录")
|
||||||
|
handler.RegisterHandler("最热bl", getRecentScore, constants.LEVEL_USER)
|
||||||
|
handler.RegisterHelpInform("最热bl", "查看全大陆的最新游戏记录")
|
||||||
|
handler.RegisterHandler("截bl", screenShotBL, constants.LEVEL_USER)
|
||||||
|
handler.RegisterHandler("jbl", screenShotBL, constants.LEVEL_USER)
|
||||||
|
handler.RegisterHelpInform("截bl/jbl", "beatleader主页截图")
|
||||||
}
|
}
|
||||||
|
|
||||||
func getMyBL(msg model.Message) (reply model.Reply) {
|
func getMyBL(msg model.Message) (reply model.Reply) {
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
package echo
|
package echo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("echo", echo)
|
handler.RegisterHandler("echo", echo, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("echo", "再说一遍")
|
handler.RegisterHelpInform("echo", "再说一遍")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
package getweb
|
package getweb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"git.lxtend.com/qqbot/util"
|
"git.lxtend.com/qqbot/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("上网", getweb)
|
handler.RegisterHandler("上网", getweb, constants.LEVEL_TRUSTED)
|
||||||
handler.RegisterHelpInform("上网", "上网 <URL> 截取网页")
|
handler.RegisterHelpInform("上网", "上网 <URL> 截取网页")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,38 +4,45 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/auth"
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Handler func(msg model.Message) (reply model.Reply)
|
var handlers = make(map[string]model.HandlerInfo[model.Handler])
|
||||||
type TryCatchHandler func(msg model.Message) (reply model.Reply, catched bool)
|
var frontMatchHandlers = make(map[string]model.HandlerInfo[model.Handler])
|
||||||
|
var liveHandlers = make(map[int64]map[int64]model.TryCatchHandler)
|
||||||
var handlers = make(map[string]Handler)
|
var livePrivateHandlers = make(map[int64]model.TryCatchHandler)
|
||||||
var frontMatchHandlers = make(map[string]Handler)
|
|
||||||
var liveHandlers = make(map[int64]map[int64]TryCatchHandler)
|
|
||||||
var livePrivateHandlers = make(map[int64]TryCatchHandler)
|
|
||||||
var HelpInforms = make(map[string]string)
|
var HelpInforms = make(map[string]string)
|
||||||
var privateAllHandler Handler
|
var privateAllHandler model.Handler
|
||||||
|
|
||||||
func RegisterPrivateHandler(handler Handler) {
|
func RegisterPrivateHandler(handler model.Handler) {
|
||||||
privateAllHandler = handler
|
privateAllHandler = handler
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterHandler(trigger string, handler Handler) {
|
func RegisterHandler(trigger string, handler model.Handler, level constants.PermissionLevel) {
|
||||||
handlers[trigger] = handler
|
handlers[trigger] = model.HandlerInfo[model.Handler]{
|
||||||
|
Trigger: trigger,
|
||||||
|
Handler: handler,
|
||||||
|
Level: level,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterFrontMatchHandler(trigger string, handler Handler) {
|
func RegisterFrontMatchHandler(trigger string, handler model.Handler, level constants.PermissionLevel) {
|
||||||
frontMatchHandlers[trigger] = handler
|
frontMatchHandlers[trigger] = model.HandlerInfo[model.Handler]{
|
||||||
|
Trigger: trigger,
|
||||||
|
Handler: handler,
|
||||||
|
Level: level,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterLiveHandler(groupID int64, userID int64, handler TryCatchHandler) { //userID=-1 means for all users in groupID
|
func RegisterLiveHandler(groupID int64, userID int64, handler model.TryCatchHandler) { //userID=-1 means for all users in groupID
|
||||||
if groupID == 0 {
|
if groupID == 0 {
|
||||||
livePrivateHandlers[userID] = handler
|
livePrivateHandlers[userID] = handler
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if _, ok := liveHandlers[groupID]; !ok {
|
if _, ok := liveHandlers[groupID]; !ok {
|
||||||
liveHandlers[groupID] = make(map[int64]TryCatchHandler)
|
liveHandlers[groupID] = make(map[int64]model.TryCatchHandler)
|
||||||
}
|
}
|
||||||
liveHandlers[groupID][userID] = handler
|
liveHandlers[groupID][userID] = handler
|
||||||
}
|
}
|
||||||
@ -74,12 +81,12 @@ func MsgInHandler(msg model.Message) (reply model.Reply) {
|
|||||||
}
|
}
|
||||||
for trigger, handler := range frontMatchHandlers {
|
for trigger, handler := range frontMatchHandlers {
|
||||||
if strings.HasPrefix(msg.RawMsg, trigger) {
|
if strings.HasPrefix(msg.RawMsg, trigger) {
|
||||||
return handler(msg)
|
return auth.TryExecHandler(msg, handler.Level, handler.Handler)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
msgArray := strings.Split(msg.RawMsg, " ")
|
msgArray := strings.Split(msg.RawMsg, " ")
|
||||||
if handler, ok := handlers[msgArray[0]]; ok {
|
if handler, ok := handlers[msgArray[0]]; ok {
|
||||||
return handler(msg)
|
return auth.TryExecHandler(msg, handler.Level, handler.Handler)
|
||||||
}
|
}
|
||||||
if !msg.GroupInfo.IsGroupMsg && privateAllHandler != nil {
|
if !msg.GroupInfo.IsGroupMsg && privateAllHandler != nil {
|
||||||
return privateAllHandler(msg)
|
return privateAllHandler(msg)
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"git.lxtend.com/qqbot/util"
|
"git.lxtend.com/qqbot/util"
|
||||||
@ -18,7 +19,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("校长", headmasterHandler)
|
handler.RegisterHandler("校长", headmasterHandler, constants.LEVEL_USER)
|
||||||
handler.RegisterPrivateHandler(headmasterHandler)
|
handler.RegisterPrivateHandler(headmasterHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
package health
|
package health
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("health", health)
|
handler.RegisterHandler("health", health, constants.LEVEL_USER)
|
||||||
}
|
}
|
||||||
|
|
||||||
func health(msg model.Message) (reply model.Reply) {
|
func health(msg model.Message) (reply model.Reply) {
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
package help
|
package help
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("!help", help)
|
handler.RegisterHandler("!help", help, constants.LEVEL_BANNED)
|
||||||
}
|
}
|
||||||
|
|
||||||
func help(msg model.Message) (reply model.Reply) {
|
func help(msg model.Message) (reply model.Reply) {
|
||||||
|
@ -3,6 +3,7 @@ package jrrp
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"git.lxtend.com/qqbot/service/jrrp"
|
"git.lxtend.com/qqbot/service/jrrp"
|
||||||
@ -12,8 +13,8 @@ var jrrpInstance *jrrp.Jrrp
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
jrrpInstance = jrrp.NewJrrp()
|
jrrpInstance = jrrp.NewJrrp()
|
||||||
handler.RegisterHandler("今日人品", jrrpHandler)
|
handler.RegisterHandler("今日人品", jrrpHandler, constants.LEVEL_USER)
|
||||||
handler.RegisterHandler("jrrp", jrrpHandler)
|
handler.RegisterHandler("jrrp", jrrpHandler, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("今日人品/jrrp", "今日人品或jrrp 查询今日人品")
|
handler.RegisterHelpInform("今日人品/jrrp", "今日人品或jrrp 查询今日人品")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"os/exec"
|
"os/exec"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
)
|
)
|
||||||
@ -14,10 +15,10 @@ import (
|
|||||||
var hasVaildBuild = true
|
var hasVaildBuild = true
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("/重启bot", restart)
|
handler.RegisterHandler("/重启bot", restart, constants.LEVEL_ADMIN)
|
||||||
handler.RegisterHandler("/构建bot", build)
|
handler.RegisterHandler("/构建bot", build, constants.LEVEL_ADMIN)
|
||||||
handler.RegisterHandler("/构建重启", buildAndRestart)
|
handler.RegisterHandler("/构建重启", buildAndRestart, constants.LEVEL_ADMIN)
|
||||||
handler.RegisterHandler("/gitpull", pullCode)
|
handler.RegisterHandler("/gitpull", pullCode, constants.LEVEL_ADMIN)
|
||||||
}
|
}
|
||||||
|
|
||||||
func restart(msg model.Message) model.Reply {
|
func restart(msg model.Message) model.Reply {
|
||||||
|
@ -6,13 +6,14 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"golang.org/x/exp/rand"
|
"golang.org/x/exp/rand"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("roll", roll)
|
handler.RegisterHandler("roll", roll, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("roll", "roll点")
|
handler.RegisterHelpInform("roll", "roll点")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
package say
|
package say
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("kw", say)
|
handler.RegisterHandler("kw", say, constants.LEVEL_TRUSTED)
|
||||||
}
|
}
|
||||||
|
|
||||||
func say(msg model.Message) (reply model.Reply) {
|
func say(msg model.Message) (reply model.Reply) {
|
||||||
|
@ -5,24 +5,25 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"git.lxtend.com/qqbot/service/scoresaber"
|
"git.lxtend.com/qqbot/service/scoresaber"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("查ss", getSSProfile)
|
handler.RegisterHandler("查ss", getSSProfile, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("查ss", "查看您的最新分数")
|
handler.RegisterHelpInform("查ss", "查看您的最新分数")
|
||||||
handler.RegisterHandler("绑定ss", bindSS)
|
handler.RegisterHandler("绑定ss", bindSS, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("绑定ss", "绑定您的scoresaber账号")
|
handler.RegisterHelpInform("绑定ss", "绑定您的scoresaber账号")
|
||||||
handler.RegisterHandler("解绑ss", unbindSS)
|
handler.RegisterHandler("解绑ss", unbindSS, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("解绑ss", "解绑您的scoresaber账号")
|
handler.RegisterHelpInform("解绑ss", "解绑您的scoresaber账号")
|
||||||
handler.RegisterHandler("最新ss", getMyRecentScore)
|
handler.RegisterHandler("最新ss", getMyRecentScore, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("最新ss", "查看您的最新游戏记录")
|
handler.RegisterHelpInform("最新ss", "查看您的最新游戏记录")
|
||||||
handler.RegisterHandler("最热ss", getRecentScore)
|
handler.RegisterHandler("最热ss", getRecentScore, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("最热ss", "查看全大陆的最新游戏记录")
|
handler.RegisterHelpInform("最热ss", "查看全大陆的最新游戏记录")
|
||||||
handler.RegisterHandler("截ss", screenshotSS)
|
handler.RegisterHandler("截ss", screenshotSS, constants.LEVEL_USER)
|
||||||
handler.RegisterHandler("jss", screenshotSS)
|
handler.RegisterHandler("jss", screenshotSS, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("截ss/jss", "scoresaber主页截图")
|
handler.RegisterHelpInform("截ss/jss", "scoresaber主页截图")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,14 +4,15 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
// Register the handler with the server
|
// Register the handler with the server
|
||||||
handler.RegisterHandler("提单", newTicket)
|
handler.RegisterHandler("提单", newTicket, constants.LEVEL_USER)
|
||||||
handler.RegisterHandler("结单", doneTicket)
|
handler.RegisterHandler("结单", doneTicket, constants.LEVEL_ROOT)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newTicket(msg model.Message) model.Reply {
|
func newTicket(msg model.Message) model.Reply {
|
||||||
|
@ -8,15 +8,16 @@ import (
|
|||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"git.lxtend.com/qqbot/util"
|
"git.lxtend.com/qqbot/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterFrontMatchHandler("[CQ:json", cqJsonUrlParser)
|
handler.RegisterFrontMatchHandler("[CQ:json", cqJsonUrlParser, constants.LEVEL_USER)
|
||||||
handler.RegisterFrontMatchHandler("http://", plainTextUrlParser)
|
handler.RegisterFrontMatchHandler("http://", plainTextUrlParser, constants.LEVEL_USER)
|
||||||
handler.RegisterFrontMatchHandler("https://", plainTextUrlParser)
|
handler.RegisterFrontMatchHandler("https://", plainTextUrlParser, constants.LEVEL_USER)
|
||||||
}
|
}
|
||||||
|
|
||||||
func plainTextUrlParser(msg model.Message) (reply model.Reply) {
|
func plainTextUrlParser(msg model.Message) (reply model.Reply) {
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/constants"
|
||||||
"git.lxtend.com/qqbot/handler"
|
"git.lxtend.com/qqbot/handler"
|
||||||
"git.lxtend.com/qqbot/model"
|
"git.lxtend.com/qqbot/model"
|
||||||
"git.lxtend.com/qqbot/service/xibao"
|
"git.lxtend.com/qqbot/service/xibao"
|
||||||
@ -11,9 +12,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
handler.RegisterHandler("喜报", xiBao)
|
handler.RegisterHandler("喜报", xiBao, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("喜报", "喜报 [内容] 生成喜报图片,支持换行")
|
handler.RegisterHelpInform("喜报", "喜报 [内容] 生成喜报图片,支持换行")
|
||||||
handler.RegisterHandler("悲报", beiBao)
|
handler.RegisterHandler("悲报", beiBao, constants.LEVEL_USER)
|
||||||
handler.RegisterHelpInform("悲报", "悲报 [内容] 生成悲报图片,支持换行")
|
handler.RegisterHelpInform("悲报", "悲报 [内容] 生成悲报图片,支持换行")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user