2026-03-24 12:18:30 +08:00
|
|
|
package robot
|
|
|
|
|
|
|
|
|
|
import (
|
2026-03-25 23:00:18 +08:00
|
|
|
"blazing/cool"
|
|
|
|
|
"blazing/modules/base/config"
|
2026-03-24 12:18:30 +08:00
|
|
|
"blazing/modules/base/service"
|
|
|
|
|
"strings"
|
|
|
|
|
|
2026-03-25 23:00:18 +08:00
|
|
|
"github.com/golang-jwt/jwt/v4"
|
2026-03-24 12:18:30 +08:00
|
|
|
zero "github.com/wdvxdr1123/ZeroBot"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
zero.OnCommand("绑定").
|
|
|
|
|
Handle(func(ctx *zero.Ctx) {
|
|
|
|
|
msgs := strings.Fields(ctx.Event.Message.String())
|
2026-03-25 23:00:18 +08:00
|
|
|
if len(msgs) > 1 {
|
|
|
|
|
token, err := jwt.ParseWithClaims(msgs[1], &cool.Claims{}, func(token *jwt.Token) (interface{}, error) {
|
2026-03-24 12:18:30 +08:00
|
|
|
|
2026-03-25 23:00:18 +08:00
|
|
|
return []byte(config.Config.Jwt.Secret), nil
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
ctx.SendPrivateMessage(ctx.Event.Sender.ID, err.Error())
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if !token.Valid {
|
|
|
|
|
ctx.SendPrivateMessage(ctx.Event.Sender.ID, "无效的token")
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
admin := token.Claims.(*cool.Claims)
|
|
|
|
|
err = service.NewBaseSysUserService().BindQQ(uint32(admin.UserId), ctx.Event.Sender.ID)
|
2026-03-24 12:18:30 +08:00
|
|
|
if err != nil {
|
2026-03-25 11:18:18 +08:00
|
|
|
ctx.SendPrivateMessage(ctx.Event.Sender.ID, err.Error())
|
|
|
|
|
|
2026-03-24 12:18:30 +08:00
|
|
|
} else {
|
2026-03-25 11:18:18 +08:00
|
|
|
ctx.SendPrivateMessage(ctx.Event.Sender.ID, "绑定成功")
|
|
|
|
|
|
2026-03-24 12:18:30 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
}
|