diff --git a/main.go b/main.go index 575a699c..73972edf 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,7 @@ import ( // 实用类 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_github" // 搜索GitHub仓库 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_manager" // 群管 + _ "github.com/FloatTech/ZeroBot-Plugin/plugin_nbnhhsh" // 拼音首字母缩写释义工具 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_runcode" // 在线运行代码 // 娱乐类 diff --git a/plugin_nbnhhsh/nbnhhsh.go b/plugin_nbnhhsh/nbnhhsh.go new file mode 100644 index 00000000..8e4df5ae --- /dev/null +++ b/plugin_nbnhhsh/nbnhhsh.go @@ -0,0 +1,39 @@ +package nbnhhsh + +import ( + "io/ioutil" + "net/http" + "net/url" + "strings" + + "github.com/tidwall/gjson" + zero "github.com/wdvxdr1123/ZeroBot" + "github.com/wdvxdr1123/ZeroBot/message" +) + +func init() { + zero.OnRegex(`^[??]{1,2} ?([a-z0-9]+)$`).SetBlock(false). + Handle(func(ctx *zero.Ctx) { + keyword := ctx.State["regex_matched"].([]string)[1] + ctx.SendChain(message.Text(keyword + ": " + strings.Join(getValue(keyword), ", "))) + }) +} + +func getValue(text string) []string { + urlValues := url.Values{} + urlValues.Add("text", text) + resp, _ := http.PostForm("https://lab.magiconch.com/api/nbnhhsh/guess", urlValues) + body, _ := ioutil.ReadAll(resp.Body) + json := gjson.ParseBytes(body) + res := make([]string, 0) + var jsonPath string + if json.Get("0.trans").Exists() { + jsonPath = "0.trans" + } else { + jsonPath = "0.inputting" + } + for _, value := range json.Get(jsonPath).Array() { + res = append(res, value.String()) + } + return res +}