ZeroBot-Plugin/plugin/quan/quan.go
2023-01-16 11:25:39 +08:00

59 lines
1.6 KiB
Go

// Package quan qq权重查询
package quan
import (
"fmt"
"strconv"
"strings"
"github.com/FloatTech/floatbox/web"
ctrl "github.com/FloatTech/zbpctrl"
"github.com/FloatTech/zbputils/control"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
"github.com/wdvxdr1123/ZeroBot/utils/helper"
)
const (
quan = "http://tc.tfkapi.top/API/qqqz.php?qq=%v" // api
)
func init() { // 主函数
en := control.Register("quan", &ctrl.Options[*zero.Ctx]{
DisableOnDefault: false,
Brief: "QQ权重查询",
Help: "权重查询方式\n" +
"- 权重查询+@xxx" +
"- 权重查询+QQ号(可以不写,默认本人)",
})
en.OnRegex(`^权重查询\s*(\[CQ:at,qq=)?(\d+)?`).SetBlock(true).Handle(func(ctx *zero.Ctx) {
str := ctx.State["regex_matched"].([]string)[2] // 获取uid
if str == "" { // user
str = strconv.FormatInt(ctx.Event.UserID, 10)
}
es, err := web.GetData(fmt.Sprintf(quan, str)) // 将网站返回结果赋值
if err != nil {
ctx.SendChain(message.Text("出现错误捏:", err))
return
}
if len(helper.BytesToString(es)) <= 24 {
ctx.SendChain(message.Text("网站维护中")) // 输出结果
return
}
f := helper.BytesToString(es)[24:]
_, err = strconv.Atoi(f)
if err != nil {
ctx.SendChain(message.Text("网站维护中")) // 输出结果
return
}
var msg strings.Builder
msg.WriteString("查询账号:")
msg.WriteString(str)
msg.WriteString("\n")
msg.WriteString("查询状态:成功\n")
msg.WriteString("您的权重为:")
msg.WriteString(f)
ctx.SendChain(message.Text(msg.String())) // 输出结果
})
}