ZeroBot-Plugin/plugin/quan/quan.go
2023-04-15 15:32:09 +08:00

61 lines
1.6 KiB
Go

// Package quan qq权重查询
package quan
import (
"encoding/json"
"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"
)
const (
quan = "http://tfapi.top/API/qqqz.php?type=json&qq=" // api
)
type result struct {
Code int `json:"code"`
Msg string `json:"msg"`
Qz string `json:"qz"`
}
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(quan + str) // 将网站返回结果赋值
if err != nil {
ctx.SendChain(message.Text("出现错误捏: ", err))
return
}
var data result
err = json.Unmarshal(es, &data)
if err != nil {
ctx.SendChain(message.Text("解析json错误: ", err))
return
}
var msg strings.Builder
msg.WriteString("查询账号: ")
msg.WriteString(str)
msg.WriteString("\n")
msg.WriteString("查询状态: ")
msg.WriteString(data.Msg)
msg.WriteString("\n您的权重为: ")
msg.WriteString(data.Qz)
ctx.SendChain(message.Text(msg.String())) // 输出结果
})
}